package hilos;

import com.example.tdam_2012_g3.Activity_Contactos;
import com.example.tdam_2012_g3.Activity_MsjServidor;
import com.example.tdam_2012_g3.MainActivity;

import entidades.BroadCastWifiReciver;


import Persistencia.CreadorBD;
import android.R;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.AsyncTask;
import android.preference.PreferenceManager;


public class ConectoWifi extends AsyncTask<Void, Integer,Void>{
 
private CreadorBD creador;
private Context context;
private int tipoConexion;
private boolean notify;
private boolean isConnected;

public void setIsConnected(boolean b){
	isConnected = b;
}

public void notifyConnected(boolean b){
	notify=b;
}
public void setTipoConexion(int tipoConexion) {
	this.tipoConexion = tipoConexion;
}

public void setContext(Context context) {
	this.context = context;
}
  int burnuptime;

	@Override
	protected Void doInBackground(Void... arg0) {
		
		if(tipoConexion == BroadCastWifiReciver.CONEXION_3G ||tipoConexion == BroadCastWifiReciver.CONEXION_WIFI )	{
         creador.insertarNuevaConexion(tipoConexion);
         
         publishProgress();
		}
		this.guardarCambioConectividad(isConnected);
			
	
			
			
		
		
		
		return null;
	}
	
	protected void onPostExecute(Void Result){
		
	}
	protected void onPreExecute(){
		creador = new CreadorBD(context);
	}
	protected void onProgressUpdate(Integer... values){
	   if(notify)
		this.notificarCambioEstadoServidor();
	 
	 
	}
	 public void notificarCambioEstadoServidor(){
	    	String ns = context.NOTIFICATION_SERVICE;
	    	NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(ns);
	    	int icono = com.example.tdam_2012_g3.R.drawable.ic_stat_name;
	    	//para uscar en los d eandroid  android.R.drawable.ic_;
	    	CharSequence mensaje;
	    	CharSequence titulo= "Conexion";
	    	long when = System.currentTimeMillis();
	    	if(tipoConexion==BroadCastWifiReciver.CONEXION_WIFI){
	    		mensaje = "Conectado via WiFi";
	    	}
	    	else
	    		mensaje = "Conectado via Red Movil";
	    	
	    	
	    	Intent notificationIntent = new Intent(context,MainActivity.class);
	    	PendingIntent contentIntent = PendingIntent.getActivity(context,0,notificationIntent,0);
	    	Notification notification = new Notification(icono,"",when);
	    	notification.defaults |= Notification.DEFAULT_SOUND;
	    	notification.flags |= Notification.FLAG_AUTO_CANCEL;
	    	notification.setLatestEventInfo(context, titulo, mensaje, contentIntent);
	    
	    	//cambiar a un static final
	    	mNotificationManager.notify(1, notification);
	    	
	    	
	    }
	 /**
	  * Este metodo registra en una shared preference si es que estamos conectados o no
	  * para despues consultarla a la hora de decidir si brindar servicio d eenvio de mensajes
	  * @param conectado boolean que indica si estamos conectados o no
	  * 
	  */
	 public void guardarCambioConectividad(boolean conectado){
		 SharedPreferences myPreference=PreferenceManager.getDefaultSharedPreferences(context);
		 Editor editMyPreferences = myPreference.edit();
		 editMyPreferences.putBoolean("connected", conectado);
		 editMyPreferences.commit();
		
		
	 }
	 
}

